package com.github.gaojh.ioc.bean;

import java.lang.annotation.Annotation;
import java.util.List;

/**
 * @author gaojh
 * @since 2020/3/23
 */
public interface ClassScanner {

    ClassInfo getClassInfo(String name);

    ClassInfo getClassInfo(Class<?> clazz);

    List<ClassInfo> getClassByAnnotation(Class<? extends Annotation> annotation);

    List<ClassInfo> getClassByInterface(Class<?> interfaceClass);

    List<ClassInfo> getAllClass();

    String getBeanName(Class<?> clazz);

    void addClass(Class<?> clazz);
}
